import store from '@/store'
import axios from 'axios'
import { Message } from 'element-ui'
// 设置基地址，添加请求与响应拦截器
// 创建axios实例对象
const service = axios.create({
  baseURL: 'api', // 和代理地址相同
  timeout: 2000
})

// 添加请求拦截器
// 自带两个形参且都是回调函数
service.interceptors.request.use((config) => {
  if (store.getters.token) {
    config.headers.Authorization = `Bearer ${store.getters.token}`
  }
  return config
}, (error) => {
  return Promise.reject(error)
})

// 响应拦截器
service.interceptors.response.use((response) => {
  const { code, msg, data } = response.data // 返回真正数据，但是解构的data是对象，包裹token
  // data为用户提交的真正信息
  if (code === 1000) {
    return data
  }
  Message.error(msg) // 弹窗提示错误信息并终止后面运行→返回一个promise错误对象
  return Promise.reject(new Error(msg)) // 没有错误对象就自己new Error一个新的错误对象，参数填入msg提示信息
}, (error) => {
  Message.error(error.msg)
  return Promise.reject(error)
})
